热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

控制策略|PI控制器积分分离的仿真分析

目录1.概述2.积分分离PI控制器3.直流电机模型4.仿真结果分析4.1普通的PI控制4.2积分分离的PI控制1.概述PID控制器是工程上应用最广泛的控制方法࿰

目录

 

1. 概述

2. 积分分离PI控制器

3. 直流电机模型

4. 仿真结果分析

4.1 普通的PI控制

4.2 积分分离的PI控制




1. 概述

        PID控制器是工程上应用最广泛的控制方法,汽车上的应用也非常多,比如:定速巡航、蠕行控制、车速限制、电机转速控制等。今天,我们介绍一种比较常用的PI控制方法:积分分离的PI控制器。

        通常PID控制中引入积分是为了消除静态误差、提高控制精度,但在过程的启动、结束或大幅度增减设定值时,短时间内系统输出很大的偏差会造成PID运算的积分积累,致使控制量超过执行机构可能允许的最大动作范围所对应的极限控制量,引起系统较大的超调,甚至引起系统较大的振荡。

        再通俗一点理解就是,积分控制代表过去,当偏差较大时会积累太多非期望的过去,这会对后面的动态过程控制产生不利影响,所以可以想办法把这部分不想要的积分屏蔽掉,以减小超调量。


2. 积分分离PI控制器

        下图为普通PI控制器的Simulink模型:


图 2‑1:普通PI控制器

        我们在普通PI控制器的基础上增加积分分离算法:当目标转速与实际转速偏差大于一定值时停止积分;当目标转速与实际转速偏差小于一定值时开始积分。积分分离PI控制器如下图所示:


图 2‑2:积分分离的PI控制

        其中,开始积分的偏差阈值在此处设定为800rpm,Kp设定为0.005,Ki设定为0.02。


3. 直流电机模型

        为了直观看到PI控制器运行的效果,还需要设置一个被控对象模型,这里选择了一个12V直流电机作为被控对象,其数学表达式为:

U=I*R+Ke*φ*w+L*dI/dt

Te=Kt*φ*I

Te-TL=J*dw/dt+B*w

        基于上述表达式,采用传递函数模块搭建直流电机的Simulink模型,如下图所示:


图 3‑1:直流电机模型

        其中,电机模型参数:L设置为0.05,R设置为0.1,J设置为0.001,B设置为0.01,Ke设置为0.1,fai设置为0.1,Kt设置为Ke*30/pi,TL设置为0。


4. 仿真结果分析

        将PI控制器和直流电机模型组合起来,一个通过PI控制器控制直流电机转速的仿真模型就完成了,如下图所示:


图 4‑1:仿真模型

        其中,上半部分是普通的PI控制,下半部分是积分分离的PI控制,通过仿真可以分析出两种PI控制器的不同之处。仿真过程中,通过Signal Builder模块给定一个目标转速。


4.1 普通的PI控制

        普通的PI控制仿真结果如下图所示:


图 4‑2:普通PI仿真结果

         从图中可以看出,转速控制的结果还是比较理想,出现短暂的超调后能够迅速回到稳定状态。


4.2 积分分离的PI控制

        积分分离的PI控制仿真结果如下图所示: 


图 4‑3:积分分离PI仿真结果

        从图中可以看出,相比普通的PI控制器,虽然响应的速率差不多,但是超调量有了很大改善。

        通常,对于积分分离PI控制器,由于I项仅仅作用于小偏差范围,因此可以适当增大参数值,以提高响应速率。


推荐阅读
  • 本文将介绍如何使用 Go 语言编写和运行一个简单的“Hello, World!”程序。内容涵盖开发环境配置、代码结构解析及执行步骤。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • C++实现经典排序算法
    本文详细介绍了七种经典的排序算法及其性能分析。每种算法的平均、最坏和最好情况的时间复杂度、辅助空间需求以及稳定性都被列出,帮助读者全面了解这些排序方法的特点。 ... [详细]
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文介绍了在安装或运行 Python 项目时遇到的 'ModuleNotFoundError: No module named setuptools_rust' 错误,并提供了解决方案。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • c# – UWP:BrightnessOverride StartOverride逻辑 ... [详细]
  • 作为一名新手,您可能会在初次尝试使用Eclipse进行Struts开发时遇到一些挑战。本文将为您提供详细的指导和解决方案,帮助您克服常见的配置和操作难题。 ... [详细]
  • ImmutableX Poised to Pioneer Web3 Gaming Revolution
    ImmutableX is set to spearhead the evolution of Web3 gaming, with its innovative technologies and strategic partnerships driving significant advancements in the industry. ... [详细]
  • 本文介绍了如何在C#中启动一个应用程序,并通过枚举窗口来获取其主窗口句柄。当使用Process类启动程序时,我们通常只能获得进程的句柄,而主窗口句柄可能为0。因此,我们需要使用API函数和回调机制来准确获取主窗口句柄。 ... [详细]
  • Splay Tree 区间操作优化
    本文详细介绍了使用Splay Tree进行区间操作的实现方法,包括插入、删除、修改、翻转和求和等操作。通过这些操作,可以高效地处理动态序列问题,并且代码实现具有一定的挑战性,有助于编程能力的提升。 ... [详细]
  • 本文详细介绍了Java中org.w3c.dom.Text类的splitText()方法,通过多个代码示例展示了其实际应用。该方法用于将文本节点在指定位置拆分为两个节点,并保持在文档树中。 ... [详细]
  • 本文探讨了如何优化和正确配置Kafka Streams应用程序以确保准确的状态存储查询。通过调整配置参数和代码逻辑,可以有效解决数据不一致的问题。 ... [详细]
author-avatar
夕阳何处寻
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有